//
//  TouchableViewController.m
//  HideNavigationBar
//
//  Created by Naoki TSUTSUI on 10/02/05.
//  Copyright 2010 iphoneworld.jp. All rights reserved.
//

#import "TouchableViewController.h"


@implementation TouchableViewController

@synthesize statusLabel;

- (void)dealloc {
  [statusLabel release];
  [super dealloc];
}

#pragma mark -
#pragma タップイベント取得処理

// タップイベントを取得した時の処理
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  
  UITouch *touch = [touches anyObject];
  
  if([touch tapCount] == 1) {
    // 次のセレクタは0.25秒後に実行されるので、それ以内であればキャンセルできる
    [self performSelector:@selector(didSingleTap:) withObject:touch afterDelay:0.25];
    // |didSingleTap|が実行されたら、これ以上処理を行わない
    return;  
  } else if ([touch tapCount] == 2) {
    // |didSingleTap|セレクタの実行をキャンセルして|didDoubleTap|を実行する
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
    [self performSelector:@selector(didDoubleTap:) withObject:touch afterDelay:0.0];
  }
}

#pragma mark -
#pragma タップされたときに実行するアクション

- (void)didSingleTap:(UITouch *)touch
{
  NSLog(@"ここは１タップの時だけ実行される");
  statusLabel.text = @"１回タップされました";
  // １回タップされた時に実行するセレクタを実行する
  [self.navigationController setNavigationBarHidden:YES animated:YES];
}

- (void)didDoubleTap:(UITouch *)touch
{
  NSLog(@"ここは２タップの時だけ実行される");
  statusLabel.text = @"２回タップされました";
  // perform single click action
  [self.navigationController setNavigationBarHidden:NO animated:YES];
}

#pragma mark -
#pragma Object Lifecycle methods

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
  [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
  [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}
@end
